package cn.fl.riskctrl.brdb.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import fl.riskctrl.facade.brdb.dto.BrscrApplyLnStatsDTO;
import cn.fl.riskctrl.brdb.vo.BrscrApplyLnStatsVO;


 /**
 * @Description: 百融评分-多次申请核查高级版统计数据
  说明:
  1、取"空/0/N"；空：无申请记录；N申请记录详情。
  2、用户近7/15天、1/3/6/12个月在百融的虚拟信贷联盟(银行、非银、非银细分类型)中的多次信贷申请情况.
  3、客户类型——银行、非银：P2P、小贷、消费类分期、现金类分期、代偿类分期、其他（信保、信托等）。消费类分期：借贷用于购买消费品并分期偿还的业务；现金类分期：支取现金并分期偿还的业务；代偿类分期：借贷用于偿还已有借款并分期偿还的业务；非银其他：包括担保、信保等。
  2.时间维度定义：近1个月-最近30天，近3个月-最近90天、近6个月-最近180天。
  3.输出逻辑：0为填充值，与空的含义相同。
   转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class BrscrApplyLnStatsVOTransform {


	/**
	 * DTO 转  VO
	 * @param po BrscrApplyLnStatsDTO
	 * @return BrscrApplyLnStatsVO
	 */
	public static BrscrApplyLnStatsVO toVO(BrscrApplyLnStatsDTO dto) {
		BrscrApplyLnStatsVO  vo = null;
		if (dto != null) { 
			vo = new BrscrApplyLnStatsVO();
			vo.setId(dto.getId());
			vo.setPdCd(dto.getPdCd());//PD_CD
			vo.setQueryTypCd(dto.getQueryTypCd());//被查询类型(mp:手机号,idCard:身份证ID)
			vo.setMthQty(dto.getMthQty());//近N个月有申请记录月份数(als_mN_*_tot_mons)
			vo.setAvgMthQty(dto.getAvgMthQty());//近N个月平均每月申请次数(有申请月份平均)(als_mN_*_avg_monnum)
			vo.setMaxMthQty(dto.getMaxMthQty());//近N个月最大月申请次数(als_mN_*_max_monnum)
			vo.setMinMthQty(dto.getMinMthQty());//近N个月最小月申请次数(als_mN_*_min_monnum)
			vo.setMaxIetedayQty(dto.getMaxIetedayQty());//近N个月申请最大间隔天数(als_mN_*_max_inteday)
			vo.setMinIetedayQty(dto.getMinIetedayQty());//近N个月申请最小间隔天数(als_mN_*_min_inteday)
			vo.setBkMthQty(dto.getBkMthQty());//近N个月在银行机构有申请记录月份数(als_mN_*_bank_tot_mons)
			vo.setBkAvgMthQty(dto.getBkAvgMthQty());//近N个月在银行机构平均每月申请次数(有申请月份平均)(als_mN_*_bank_avg_monnum)
			vo.setBkMaxMthQty(dto.getBkMaxMthQty());//近N个月在银行机构最大月申请次数(als_mN_*_bank_max_monnum)
			vo.setBkMinMthQty(dto.getBkMinMthQty());//近N个月在银行机构最小月申请次数(als_mN_*_bank_min_monnum)
			vo.setBkMaxIetedayQty(dto.getBkMaxIetedayQty());//近N个月在银行机构申请最大间隔天数(als_mN_*_bank_max_inteday)
			vo.setBkMinIetedayQty(dto.getBkMinIetedayQty());//近N个月在银行机构申请最小间隔天数(als_mN_*_bank_min_inteday)
			vo.setNbkMthQty(dto.getNbkMthQty());//近N个月在非银机构有申请记录月份数(als_mN_*_nbank_tot_mons)
			vo.setNbkAvgMthQty(dto.getNbkAvgMthQty());//近N个月在非银机构平均每月申请次数(有申请月份平均)(als_mN_*_nbank_avg_monnum)
			vo.setNbkMaxMthQty(dto.getNbkMaxMthQty());//近N个月在非银机构最大月申请次数(als_mN_*_nbank_max_monnum)
			vo.setNbkMinMthQty(dto.getNbkMinMthQty());//近N个月在非银机构最小月申请次数(als_mN_*_nbank_min_monnum)
			vo.setNbkMaxIetedayQty(dto.getNbkMaxIetedayQty());//近N个月在非银机构申请最大间隔天数(als_mN_*_nbank_max_inteday)
			vo.setNbkMinIetedayQty(dto.getNbkMinIetedayQty());//近N个月在非银机构申请最小间隔天数(als_mN_*_nbank_min_inteday)
			vo.setReportNo(dto.getReportNo());//报告编号-关联报告表ID

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto BrscrApplyLnStatsVO
	 * @return BrscrApplyLnStatsDTO
	 */
	public static BrscrApplyLnStatsDTO toDTO(BrscrApplyLnStatsVO vo) {
		BrscrApplyLnStatsDTO dto = null;
		if (vo != null) {
			dto = new BrscrApplyLnStatsDTO();
			dto.setId(vo.getId());
			dto.setPdCd(vo.getPdCd());//PD_CD
			dto.setQueryTypCd(vo.getQueryTypCd());//被查询类型(mp:手机号,idCard:身份证ID)
			dto.setMthQty(vo.getMthQty());//近N个月有申请记录月份数(als_mN_*_tot_mons)
			dto.setAvgMthQty(vo.getAvgMthQty());//近N个月平均每月申请次数(有申请月份平均)(als_mN_*_avg_monnum)
			dto.setMaxMthQty(vo.getMaxMthQty());//近N个月最大月申请次数(als_mN_*_max_monnum)
			dto.setMinMthQty(vo.getMinMthQty());//近N个月最小月申请次数(als_mN_*_min_monnum)
			dto.setMaxIetedayQty(vo.getMaxIetedayQty());//近N个月申请最大间隔天数(als_mN_*_max_inteday)
			dto.setMinIetedayQty(vo.getMinIetedayQty());//近N个月申请最小间隔天数(als_mN_*_min_inteday)
			dto.setBkMthQty(vo.getBkMthQty());//近N个月在银行机构有申请记录月份数(als_mN_*_bank_tot_mons)
			dto.setBkAvgMthQty(vo.getBkAvgMthQty());//近N个月在银行机构平均每月申请次数(有申请月份平均)(als_mN_*_bank_avg_monnum)
			dto.setBkMaxMthQty(vo.getBkMaxMthQty());//近N个月在银行机构最大月申请次数(als_mN_*_bank_max_monnum)
			dto.setBkMinMthQty(vo.getBkMinMthQty());//近N个月在银行机构最小月申请次数(als_mN_*_bank_min_monnum)
			dto.setBkMaxIetedayQty(vo.getBkMaxIetedayQty());//近N个月在银行机构申请最大间隔天数(als_mN_*_bank_max_inteday)
			dto.setBkMinIetedayQty(vo.getBkMinIetedayQty());//近N个月在银行机构申请最小间隔天数(als_mN_*_bank_min_inteday)
			dto.setNbkMthQty(vo.getNbkMthQty());//近N个月在非银机构有申请记录月份数(als_mN_*_nbank_tot_mons)
			dto.setNbkAvgMthQty(vo.getNbkAvgMthQty());//近N个月在非银机构平均每月申请次数(有申请月份平均)(als_mN_*_nbank_avg_monnum)
			dto.setNbkMaxMthQty(vo.getNbkMaxMthQty());//近N个月在非银机构最大月申请次数(als_mN_*_nbank_max_monnum)
			dto.setNbkMinMthQty(vo.getNbkMinMthQty());//近N个月在非银机构最小月申请次数(als_mN_*_nbank_min_monnum)
			dto.setNbkMaxIetedayQty(vo.getNbkMaxIetedayQty());//近N个月在非银机构申请最大间隔天数(als_mN_*_nbank_max_inteday)
			dto.setNbkMinIetedayQty(vo.getNbkMinIetedayQty());//近N个月在非银机构申请最小间隔天数(als_mN_*_nbank_min_inteday)
			dto.setReportNo(vo.getReportNo());//报告编号-关联报告表ID

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
		}
		return dto;
	}
}
